home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 June
/
EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso
/
earcd
/
utilsys
/
rss14gmd.lha
/
RSys_1.4gmd
/
C
/
Init.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-05-04
|
19KB
|
618 lines
/*
***************************************************************************
*
* Datei:
* RSysInit.c
*
* Inhalt:
*
* --- Globale Routinen ---
*
* int OpenSysWindow ( void );
* long CreateMainGadgets ( void );
* void ResizeWindowRefresh ( void );
*
* --- Lokale Routinen ---
*
* static void AdjustLVLines ( void );
* static void ReCalcLVHeight ( SCREEN *Scr );
*
* Bemerkungen:
* Initialisierung des Hauptfensters von RSys.
*
* Erstellungsdatum:
* 07-Jul-93 Rolf Böhme
*
* Änderungen:
* 07-Jul-93 Rolf Böhme Erstellung
*
***************************************************************************
*/
#include "RSys.h"
#include "protos.h"
static UWORD SysGTypes[] =
{
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
BUTTON_KIND,
LISTVIEW_KIND,
TEXT_KIND,
TEXT_KIND,
BUTTON_KIND
};
static int tops[20] =
{
117, 117, 117, 117,
131, 131, 131, 131,
145, 145, 145, 145,
159, 159, 159, 159,
16,
2,
102, 102
};
static NEWGADGET SysNGad[] =
{
{5, 117, 93 + NEWLEN, 12, (UBYTE *) "_Tasks", NULL, GD_TasksGad, PLACETEXT_IN, NULL, NULL},
{125, 117, 93 + NEWLEN, 12, (UBYTE *) "_Libraries", NULL, GD_LibrariesGad, PLACETEXT_IN, NULL, NULL},
{245, 117, 93 + NEWLEN, 12, (UBYTE *) "_Memory", NULL, GD_MemoryGad, PLACETEXT_IN, NULL, NULL},
{365, 117, 93 + NEWLEN, 12, (UBYTE *) "_Ports", NULL, GD_PortsGad, PLACETEXT_IN, NULL, NULL},
{5, 131, 93 + NEWLEN, 12, (UBYTE *) "_Volumes", NULL, GD_VolumesGad, PLACETEXT_IN, NULL, NULL},
{125, 131, 93 + NEWLEN, 12, (UBYTE *) "_Assigns", NULL, GD_AssignsGad, PLACETEXT_IN, NULL, NULL},
{245, 131, 93 + NEWLEN, 12, (UBYTE *) "_Fonts", NULL, GD_FontsGad, PLACETEXT_IN, NULL, NULL},
{365, 131, 93 + NEWLEN, 12, (UBYTE *) "_Resources", NULL, GD_ResourcesGad, PLACETEXT_IN, NULL, NULL},
{5, 145, 93 + NEWLEN, 12, (UBYTE *) "_Interrupts", NULL, GD_InterruptsGad, PLACETEXT_IN, NULL, NULL},
{125, 145, 93 + NEWLEN, 12, (UBYTE *) "_Windows", NULL, GD_WindowsGad, PLACETEXT_IN, NULL, NULL},
{245, 145, 93 + NEWLEN, 12, (UBYTE *) "_Screens", NULL, GD_ScreensGad, PLACETEXT_IN, NULL, NULL},
{365, 145, 93 + NEWLEN, 12, (UBYTE *) "_HandlerInp", NULL, GD_HandlerInpGad, PLACETEXT_IN, NULL, NULL},
{5, 159, 93 + NEWLEN, 12, (UBYTE *) "S_ystem", NULL, GD_SystemGad, PLACETEXT_IN, NULL, NULL},
{125, 159, 93 + NEWLEN, 12, (UBYTE *) "Har_dware", NULL, GD_HardwareGad, PLACETEXT_IN, NULL, NULL},
{245, 159, 93 + NEWLEN, 12, (UBYTE *) "Save List", NULL, GD_SaveListGad, PLACETEXT_IN, NULL, NULL},
{365, 159, 93 + NEWLEN, 12, (UBYTE *) "_Jump", NULL, GD_JumpGad, PLACETEXT_IN, NULL, NULL},
{5, 16, 477, 85, (UBYTE *) NULL, NULL, GD_ListeLV, 0, NULL, NULL},
{5, 2, 477, 12, (UBYTE *) NULL, NULL, GD_TextHeader, 0, NULL, NULL},
{5, 102, 438, 13, (UBYTE *) NULL, NULL, GD_InfoMsgGad, 0, NULL, NULL},
{446, 102, 35, 13, (UBYTE *) "_New", NULL, GD_NewGad, PLACETEXT_IN, NULL, NULL}
};
static const ULONG *SysGTags[] =
{
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
(ULONG *) (GTLV_Labels), (ULONG *) & ListeLVList, (ULONG *) (TAG_DONE),
(ULONG *) (GTTX_Text), (ULONG *) NULL, (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
(ULONG *) (GTTX_Text), (ULONG *) NULL, (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
(ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
};
/* -----------------------------------------------------------
LIBRARY *KeymapBase = NULL;
void
test(void)
{
int a = 1, b = 0;
a = a / b;
/* MapANSI((STRPTR)"huhu",4L,(STRPTR)"huhu",4L, NULL);
}
/* ----------------------------------------------------------- */
NEWMENU SysNewMenu[] =
{
/* 00 */
{NM_TITLE, (UBYTE *) "Project", NULL, 0, 0, NULL,},
/* 01 */
{NM_ITEM, (UBYTE *) "Iconify, <ESC>", (UBYTE *) "I", 0, 0, Iconify,},
/* 02 */
{NM_ITEM, (UBYTE *) "Help", (UBYTE *) "H", CHECKIT | MENUTOGGLE, 0, Help,},
/* 03 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 04 */
{NM_ITEM, (UBYTE *) "Status", NULL, 0, 0, ShowStatus,},
/* 05 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 06 */
{NM_ITEM, (UBYTE *) "Save Configuration", NULL, 0, 0, SaveConfig,},
/* 07 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 08 */
{NM_ITEM, (UBYTE *) "About...", (UBYTE *) "A", 0, 0, About,},
/* 09 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 10 */
{NM_ITEM, (UBYTE *) "Quit " NAME "...", (UBYTE *) "Q", 0, 0, quit,},
/* 11 */
{NM_TITLE, (UBYTE *) "Other Lists", NULL, 0, 0, NULL,},
/* 12 */
{NM_ITEM, (UBYTE *) "Exec", NULL, 0, 0, NULL,},
/* 13 */
{NM_SUB, (UBYTE *) "Software Devices", (STRPTR) "1", 0, 0, SysSoftDeviceList,},
/* 14 */
{NM_SUB, (UBYTE *) "Vectors", (STRPTR) "2", 0, 0, SysVectorList,},
/* 15 */
{NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 16 */
{NM_SUB, (UBYTE *) "CLI processes", NULL, 0, 0, SysCLIList,},
/* 17 */
{NM_SUB, (UBYTE *) "Semaphores", NULL, 0, 0, SysSemaphoreList,},
/* 18 */
{NM_SUB, (UBYTE *) "Memory areas", NULL, 0, 0, RSysMemoryAreaList,},
/* 19 */
{NM_ITEM, (UBYTE *) "DOS", NULL, 0, 0, NULL,},
/* 20 */
{NM_SUB, (UBYTE *) "Volume locks", (STRPTR) "3", 0, 0, RSysLockList,},
/* 21 */
{NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 22 */
{NM_SUB, (UBYTE *) "Resident programs", NULL, 0, 0, SysResidentProg,},
/* 23 */
{NM_SUB, (UBYTE *) "Physical Devices", NULL, 0, 0, SysResidentList,},
/* 24 */
{NM_SUB, (UBYTE *) "Fault messages", NULL, 0, 0, RSysFaultMessages,},
/* 25 */
{NM_ITEM, (UBYTE *) "Graphics", NULL, 0, 0, NULL,},
/* 26 */
{NM_SUB, (UBYTE *) "Display modes", (STRPTR) "4", 0, 0, RSysGetDisplayModes,},
/* 27 */
{NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 28 */
{NM_SUB, (UBYTE *) "Blitter Wait Queue", NULL, 0, 0, SysBlitterWaitList,},
/* 29 */
{NM_SUB, (UBYTE *) "TOF Wait Queue", NULL, 0, 0, SysTOFWaitList,},
/* 30 */
{NM_ITEM, (UBYTE *) "Diskfont", NULL, 0, 0, NULL,},
/* 31 */
{NM_SUB, (UBYTE *) "Fonts in FONTS:", (STRPTR) "5", 0, 0, SysAvailFontsList,},
/* 32 */
{NM_ITEM, (UBYTE *) "Intuition", NULL, 0, 0, NULL,},
/* 33 */
{NM_SUB, (UBYTE *) "Public Screens", (STRPTR) "6", 0, 0, SysPubScreenList,},
/* 34 */
{NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 35 */
{NM_SUB, (UBYTE *) "Gadgets", NULL, 0, 0, RSysGadgetList,},
/* 36 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 37 */
{NM_ITEM, (UBYTE *) "Preferences", NULL, 0, 0, NULL,},
/* 38 */
{NM_SUB, (UBYTE *) "Preferences Data", (STRPTR) "7", 0, 0, SysPrefList,},
/* 39 */
{NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 40 */
{NM_SUB, (UBYTE *) "Printer data", NULL, 0, 0, SysExtPrinterData,},
/* 41 */
{NM_SUB, (UBYTE *) "ENV-Variables", NULL, 0, 0, SysEnvList,},
/* 42 */
{NM_ITEM, (UBYTE *) "Other libraries", NULL, 0, 0, NULL,},
/* 43 */
{NM_SUB, (UBYTE *) "Commodities", (STRPTR) "8", 0, 0, SysBrokerList,},
/* 44 */
{NM_SUB, (UBYTE *) "Amigaguide XRef", (STRPTR) "9", 0, 0, RSysAmigaGuideRefList,},
/* 45 */
{NM_TITLE, (UBYTE *) "Actions", NULL, 0, 0, NULL,},
/* 46 */
{NM_ITEM, (UBYTE *) "CRC Check...", NULL, 0, 0, CRCSum,},
/* 47 */
{NM_ITEM, (UBYTE *) "Crypt File...", NULL, 0, 0, CryptFile,},
/* 48 */
{NM_ITEM, (UBYTE *) "List Hunks...", NULL, 0, 0, HunkStruct,},
/* 49 */
{NM_ITEM, (UBYTE *) "Find File...", NULL, 0, 0, FindFile,},
/* 50 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 51 */
{NM_ITEM, (UBYTE *) "Format Disk...", NULL, 0, 0, FormatDisk,},
/* 52 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 53 */
{NM_ITEM, (UBYTE *) "Save windows...", NULL, 0, 0, SaveWindows,},
/* 54 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 55 */
{NM_ITEM, (UBYTE *) "Check Libraries", NULL, 0, 0, SysCheckOffs,},
/* 56 */
{NM_TITLE, (UBYTE *) "Internal List", NULL, 0, 0, NULL,},
/* 57 */
{NM_ITEM, (UBYTE *) "Save current list", (UBYTE *) "L", 0, 0, SaveCurrentList,},
/* 58 */
{NM_ITEM, (UBYTE *) "Restore saved list", (UBYTE *) "R", 0, 0, RestoreList,},
/* 59 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 60 */
{NM_ITEM, (UBYTE *) "Kill saved list", NULL, 0, 0, KillList,},
/* 61 */
{NM_TITLE, (UBYTE *) "Flushing", NULL, 0, 0, NULL,},
/* 62 */
{NM_ITEM, (UBYTE *) "Flush Libraries", NULL, 0, 0, RSysFlushAllLibraries,},
/* 63 */
{NM_ITEM, (UBYTE *) "Flush Fonts", NULL, 0, 0, RSysFlushAllFonts,},
/*GMD */
{NM_ITEM, (UBYTE *) "Flush Devices", NULL, 0, 0, RSysFlushAllDevices,},
/* 64 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 65 */
{NM_ITEM, (UBYTE *) "Flush All", NULL, 0, 0, RSysFlushAll,},
/**/
/* 66 */
{NM_TITLE, (UBYTE *) "Clip", NULL, 0, 0, NULL,},
/* 67 */
{NM_ITEM, (UBYTE *) "Clip entry...", (UBYTE *) "C", 0, 0, RSysEntryToClip,},
/* 68 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 69 */
{NM_ITEM, (UBYTE *) "Clip list", NULL, 0, 0, RSysListToClip,},
/* 70 */
{NM_TITLE, (UBYTE *) "Flags", NULL, 0, 0, NULL,},
/* 71 */
{NM_ITEM, (UBYTE *) "Fast Mode", (UBYTE *) "F", CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleFastMode,},
/* 72 */
{NM_ITEM, (UBYTE *) "Sorting", (UBYTE *) "O", CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleSortMode,},
/* 73 */
{NM_ITEM, (UBYTE *) "Working bar", (UBYTE *) "B", CHECKIT | MENUTOGGLE, 0, ToggleWorkingBar,},
/* 74 */
{NM_ITEM, (UBYTE *) "Auto front window", (UBYTE *) "Z", CHECKIT | MENUTOGGLE, 0, ToggleAutoFront,},
/* 75 */
{NM_ITEM, (UBYTE *) "Mouse window", (UBYTE *) "M", CHECKIT | MENUTOGGLE, 0, ToggleMouseWindow,},
/* 76 */
{NM_ITEM, (UBYTE *) "Topaz Font", (UBYTE *) "T", CHECKIT | MENUTOGGLE, 0, ToggleTopazFont,},
/* 77 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 78 */
{NM_ITEM, (UBYTE *) "Speaking", NULL, CHECKIT | MENUTOGGLE, 0, ToggleSpeakMode,},
/* 79 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 80 */
{NM_ITEM, (UBYTE *) "Save asking", NULL, CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleAskingMode,},
/* 81 */
{NM_ITEM, (UBYTE *) "Text formatter", NULL, CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleTextFormatter,},
/* 82 */
{NM_TITLE, (UBYTE *) "Ext. Data", NULL, 0, 0, NULL,},
/* 83 */
{NM_ITEM, (UBYTE *) "Reload action file...", 0, 0, 0, BuildActionList,},
/* 84 */
{NM_ITEM, (UBYTE *) "Reload hardware datas...", 0, 0, 0, BuildHardwareList,},
/* 85 */
{NM_ITEM, (UBYTE *) "Reload library offsets...", 0, 0, 0, BuildLibOffsetList,},
/* 86 */
{NM_ITEM, (UBYTE *) "Reload AGuide context nodes...", 0, 0, 0, BuildHelpList,},
/* 87 */
{NM_TITLE, (UBYTE *) "Search", NULL, 0, 0, NULL,},
/* 88 */
{NM_ITEM, (UBYTE *) "Find next", (UBYTE *) "N", 0, 0, RSysFindNext,},
/* 89 */
{NM_ITEM, (UBYTE *) "Find previous", (UBYTE *) "P", 0, 0, RSysFindPrev,},
/* 90 */
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
/* 91 */
{NM_ITEM, (UBYTE *) "Search string...", (UBYTE *) "S", 0, 0, RSysSearch,},
/* -----------------------------------------------------------
{NM_TITLE, (UBYTE *) "Log File", NULL, 0, 0, NULL,},
{NM_ITEM, (UBYTE *) "Open Log file", NULL, 0, 0, OpenErrorLogFile,},
{NM_ITEM, (UBYTE *) "Close Log File", NULL, 0, 0, CloseErrorLogFile,},
{NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
{NM_ITEM, (UBYTE *) "Trap handler test (for betas only!)", NULL, 0, NULL, test},
/* ----------------------------------------------------------- */
/* 71 */
{NM_END, NULL, NULL, 0, NULL, NULL}
};
static void
ReCalcLVHeight (SCREEN * Scr)
{
int i = 0;
newlvh = ((SysWnd->Height - (SysWnd->BorderBottom + SysWnd->BorderTop + 3) -
ComputeY ((UWORD) (WndH - LVH))) / FontY) + 1;
for (i = 0; i <= Sys_CNT; i++)
if (i <= 15 || i == 18 || i == 19)
SysNGad[i].ng_TopEdge = tops[i] + (newlvh - 10) * 8;
SysNGad[16].ng_Height = LVH + (newlvh - 10) * 8;
return;
}
long
CreateMainGadgets (void)
{
GADGET *g;
NEWGADGET ng;
UWORD lc, tc;
if (NOT (g = CreateContext (&SysGList)))
return 1L;
SysGTags[50] = (ULONG *) & EntryAttr[LastID].ea_header[0];
for (lc = 0, tc = 0; lc <= Sys_CNT; lc++)
{
CopyMem (&SysNGad[lc], &ng, sizeof (NEWGADGET));
ng.ng_VisualInfo = VisualInfo;
ng.ng_TextAttr = Font;
ng.ng_LeftEdge = OffX + ComputeX (ng.ng_LeftEdge);
ng.ng_TopEdge = OffY + ComputeY (ng.ng_TopEdge);
ng.ng_Width = ComputeX (ng.ng_Width);
ng.ng_Height = ComputeY (ng.ng_Height);
SysGadgets[lc] = g = CreateGadgetA ((ULONG) SysGTypes[lc], g, &ng, (TAGITEM *) & SysGTags[tc]);
while (SysGTags[tc])
tc += 2;
tc++;
if (NOT g)
return 2L;
}
return 0L;
}
void
ResizeWindowRefresh (void)
{
InitListView (SysWnd, SysGadgets[GD_ListeLV], NULL, 0);
RemoveGList (SysWnd, SysGList, (-1));
if (SysGList)
{
FreeGadgets (SysGList);
SysGList = NULL;
}
ReCalcLVHeight (Scr);
if (CreateMainGadgets ())
ErrorHandle ("CreateMainGadgets()", GADGET_ERR, CREATE_FAIL, KILL);
AddGList (SysWnd, SysGList, -1, (-1), NULL);
MakePattern (SysWnd);
RefreshMainWindowPattern ();
RefreshListView ();
PrintStatistics ();
ClearIntuiMsgPort (SysWnd);
SysHeight = FULL * (SysWnd->Height - OffY - Scr->WBorBottom) / (FRAC * FontY);
return;
}
static void
AdjustLVLines (void)
{
ComputeFont (Scr, (UWORD) 0, (UWORD) 0);
if ((ComputeY (SysHeight) + OffY + Scr->WBorBottom) > Scr->Height)
do
{
newlvh--;
SysHeight -= 8;
}
while (newlvh > 3 &&
(ComputeY (SysHeight) + OffY + Scr->WBorBottom) > Scr->Height);
return;
}
/*
* OpenSysWindow() öffnet das Hauptfenster von RSys
*/
int
OpenSysWindow (void)
{
UWORD wleft = SysLeft, wtop = SysTop, ww, wh, smh;
long gads_not_ok;
int gl[] =
{GD_ListeLV, GD_TextHeader, GD_InfoMsgGad};
DPOS;
AdjustLVLines ();
AdjustWindowDimensions (Scr, SysLeft, SysTop, SysWidth, SysHeight,
&wleft, &wtop, &ww, &wh);
smh = compute ((UWORD) 0, FontY, (int) SysMinH);
smh = compute ((UWORD) (OffY + Scr->WBorBottom), FontY, (int) SysMinH);
SysNewMenu[2].nm_Flags = (Flags.helpmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
#define FFLAG 71
SysNewMenu[FFLAG].nm_Flags = (Flags.fastmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 1].nm_Flags = (Flags.sortmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 2].nm_Flags = (Flags.workingbar ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 3].nm_Flags = (Flags.autofront ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 4].nm_Flags = (Flags.mousewindow ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 5].nm_Flags = (Flags.sysfont ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 7].nm_Flags = (Flags.speakmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 9].nm_Flags = (Flags.saveasking ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
SysNewMenu[FFLAG + 10].nm_Flags = (Flags.textformat ? (CHECKIT | CHECKED | MENUTOGGLE) :
(CHECKIT | MENUTOGGLE));
if (NOT (SysMenus = CreateMenus (SysNewMenu, GTMN_FrontPen, menudetail, TAG_DONE)))
return 3L;
LayoutMenus (SysMenus, VisualInfo, GTMN_NewLookMenus, TRUE, GTMN_TextAttr, Font, TAG_DONE);
SysZoom[0] = 300;
SysZoom[1] = 0;
SysZoom[2] = compute ((UWORD) (OffX + Scr->WBorRight), FontX, 158);
SysZoom[3] = OffY;
if (NOT (SysWnd = OpenWindowTags (NULL,
WA_Left, wleft,
WA_Top, wtop,
WA_Width, ww,
WA_MinWidth, ww,
WA_MaxWidth, ww,
WA_Height, wh,
WA_MinHeight, smh,
WA_MaxHeight, -1,
WA_DetailPen, winddetail,
WA_BlockPen, windblock,
WA_IDCMP, BUTTONIDCMP |
LISTVIEWIDCMP |
IDCMP_MOUSEBUTTONS |
IDCMP_MOUSEMOVE |
IDCMP_CLOSEWINDOW |
IDCMP_ACTIVEWINDOW |
IDCMP_INACTIVEWINDOW |
IDCMP_SIZEVERIFY |
IDCMP_NEWSIZE |
IDCMP_RAWKEY |
IDCMP_VANILLAKEY |
IDCMP_CHANGEWINDOW |
IDCMP_DISKREMOVED |
IDCMP_DISKINSERTED |
IDCMP_MENUPICK,
WA_DragBar, TRUE,
WA_DepthGadget, TRUE,
WA_CloseGadget, TRUE,
WA_SmartRefresh, TRUE,
WA_NoCareRefresh, TRUE,
WA_SizeGadget, TRUE,
WA_SizeBBottom, TRUE,
WA_Zoom, SysZoom,
WA_PubScreenName, (LONG) namebuffer,
WA_PubScreenFallBack, TRUE,
WA_PubScreen, Scr,
WA_Title, SysWdt,
WA_Dummy + 0x30, 1L,
TAG_DONE)))
return 4L;
SysZoom[0] = SysWnd->LeftEdge;
SysZoom[1] = SysWnd->TopEdge;
SysZoom[2] = SysWnd->Width;
SysZoom[3] = SysWnd->Height;
SetMenuStrip (SysWnd, SysMenus);
if (NOT (Flags.wb_start))
{
OffMenu (SysWnd, FULLMENUNUM (0, 0, 0));
OffMenu (SysWnd, FULLMENUNUM (0, 1, 0));
OffMenu (SysWnd, FULLMENUNUM (7, 0, 0));
OffMenu (SysWnd, FULLMENUNUM (7, 3, 0));
}
if (Flags.nohelp)
OffMenu (SysWnd, FULLMENUNUM (0, 1, 0));
ReCalcLVHeight (Scr);
if (gads_not_ok = CreateMainGadgets ())
return gads_not_ok;
RefreshRastPort (SysWnd, SysGadgets, gl, 3, FALSE, SysGList);
return NULL;
}